Embodiments of the present invention relate generally to methods and systems for managing a common cache on multiple servers and more particularly to updating cache data on multiple servers without requiring a restart of those servers.
Enterprise applications support a wide variety of business functions including but not limited to accounting and financial services, human capital management services, customer relationship management services, supply chain management services, etc. When implemented by a business, these applications and even multiple instances of the same application can be executed on a number of different application servers throughout the businesses location(s). Each of the executing applications and/or instances may use a set of tables or other business information that is common or shared between the applications and/or instances. For example, a set of financial information may be used by multiple instances of an accounting application.
To improve performance of these applications, middleware applications can cache some business data tables from database on the application servers for use by the applications. But the result of this is that the cache at each location is a copy of the data and is replicated in multiple locations, i.e., on different servers and on different processes on each of those servers. In previous systems, if that data is modified by any of those processes, the middleware and all of the servers needs to be restarted to put the change into effect. So, if one process updates the cache copy the other processes on the other servers will not see the change and transactions on or using that data handled by those other processes will be incorrect. Previously, to propagate the changes to all processes on all servers, a restart would be performed at a controlled time. When the processes restart, the cache is reloaded and refreshed by that process. However, with large volumes of data and/or many servers or processes, this approach can be very time consuming and inconvenient. Hence, there is a need for improved methods and systems for updating cache data on multiple servers without requiring a restart of those servers.